package com.sprouting.ops.model.bo;

import com.sprouting.ops.annotations.invoke.CheckLength;
import com.sprouting.ops.annotations.invoke.CheckNotNull;
import com.sprouting.ops.model.OpsDep;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 用户更新参数
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2024/9/7 20:00
 */
@Data
public class UserUpdBo {

    /**
     * 角色Id
     * @see com.sprouting.ops.model.OpsRole#getId()
     */
    @NotEmpty(message = "请选择用户角色")
    private List<String> roleIdList;

    /**
     * 用户ID
     */
    @CheckNotNull(message = "非法ID")
    private String id;
    /**
     * 所属部门
     * @see OpsDep#getId()
     */
    @CheckNotNull(message = "请选择部门")
    private String depId;
    /**
     * 用户名称，昵称
     */
    @CheckNotNull(message = "请输入用户名称(昵称)")
    @CheckLength(min = 1, max = 80, message = "用户名称(昵称)超过长度限制")
    private String name;
    /**
     * 性别
     * @see com.sprouting.ops.interfaces.ConstantBase.Sex
     */
    @NotNull(message = "请选择性别")
    private Integer sex;
    /**
     * 头像
     * @see com.sprouting.ops.model.DromaraFileStorage#getId()
     */
    private String ico;
    /**
     * 状态，停用，在职，离职，启用，调离;要考虑多次的离职情况
     * @see com.sprouting.ops.interfaces.ConstantBase.UserStatus
     */
    @NotNull(message = "请指定用户状态")
    private Integer status;
    /**
     * 说明
     */
    @CheckLength(max = 1000, message = "用户说明超过长度限制")
    private String description;
    /**
     * 身份证
     */
    @CheckLength(max = 20, message = "身份证超过长度限制")
    private String idCard;
}
